Inverse kinematic control systems for robotic surgical system

ABSTRACT

A method of using inverse kinematics to control a robotic system includes receiving an input pose from a user interface to move an arm of the robotic system, calculating a remote center of motion for a desired pose from the input pose in a tool center-point frame, checking when the desire pose needs correction, correcting the desired pose of the arm, and moving the am to the desired pose in response to the input pose. The am of the robotic system including a tool having a jaw disposed at an end of the arm. Checking when the desired pose needs correction includes verifying that the remote center of motion is at or beyond a boundary distance in the desired pose. Correcting the desired pose of the arm occurs when the remote center of motion is within the boundary distance.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 16/081,773, filed Aug. 31, 2018, which is a U.S. National Stage Application filed under 35 U.S.C. § 371(a) of International Patent Application Serial No. PCT/US2017/020567, filed Mar. 3, 2017, which claims the benefit of and priority to U.S. Provisional Patent Application Ser. No. 62/303,437, filed Mar. 4, 2016, the entire disclosure of which is incorporated by reference herein.

BACKGROUND

Robotic surgical systems such as teleoperative systems are used to perform minimally invasive surgical procedures that offer many benefits over traditional open surgery techniques, including less pain, shorter hospital stays, quicker return to normal activities, minimal scarring, reduced recovery time, and less injury to tissue.

Robotic surgical systems can have a number of robotic arms that move attached instruments or tools, such as an image capturing device, a stapler, an electrosurgical instrument, etc., in response to movement of input devices by a surgeon viewing images captured by the image capturing device of a surgical site. During a surgical procedure, each of the tools is inserted through an opening, either natural or an incision, into the patient and positioned to manipulate tissue at a surgical site. The openings are placed about the patient's body so that the surgical instruments may be used to cooperatively perform the surgical procedure and the image capturing device may view the surgical site.

During the surgical procedure, the tools are manipulated in multiple degrees of freedom. When one or more of the degrees of freedom align with one another a singularity is created. As the tool approaches a singularity, the operation of the tool may become unpredictable and the degrees of freedom of the tool may be decreased. To prevent the tool from reaching a singularity, some systems employ hard stops. Other systems allow the tool to reach a singularity and use a comparison of a speed of an input controller with a speed of movement of the tool to predict the movement of the tool.

There is a continuing need to control a tool of a robotic surgical system as the tool approaches and/or passes through a singularity. Additionally or alternatively, there is a need to control a tool of a robotic surgical system to avoid reaching a singularity and to maintain each degree of freedom of the tool.

SUMMARY

This disclosure relates generally to correcting the pose of an arm and a tool of a robotic system to avoid singularities between joints and to maintain degrees of freedom of movement of the arm and the tool. Specifically, when a remote center of motion of the arm is within a boundary distance from an origin of a tool center-point frame, the remote center of motion is moved to the boundary distance while maintaining a position of a jaw axis of the tool and rotating the remote center of motion according to the rigid body kinematics. After the rotation, the tool center-point frame is expressed in the rotated remote center of motion frame, and treated as the corrected desired pose for inverse kinematics calculation.

In an aspect of the present disclosure, a method of using inverse kinematics to control a robotic system includes receiving an input pose from a user interface to move an arm of the robotic system, calculating a remote center of motion for a desired pose from the input pose in a tool center-point frame, checking when the desire pose needs correction, correcting the desired pose of the arm, and moving the arm to the desired pose in response to the input pose. The arm of the robotic system includes a tool having a jaw disposed at an end of the arm. Checking when the desired pose needs correction includes verifying that the remote center of motion is at or beyond a boundary distance in the desired pose. Correcting the desired pose of the arm occurs when the remote center of motion is within the boundary distance.

In aspects, during correcting the desired pose of the arm, the jaw axis is held in position. Correcting the desired pose of the arm may include moving the remote center of motion to the boundary distance.

In some aspects, determining the boundary distance occurs as a function of a maximum joint angler of a pitch joint defined between the tool and the distance between the origin of the tool center-point and the pitch joint. The maximum joint angle of the pitch joint may be about 75°. Determining the boundary distance may include taking the sum of the distance between the origin of the tool center-point and the pitch joint and the cosine of the maximum joint angle of the pitch point. The boundary distance may be taken along the jaw axis.

In certain aspects, the method includes providing feedback when the remote center of motion approaches the boundary distance in the desired pose. Providing feedback when the remote center of motion in the desired pose approaches the boundary distance may include increasing the feedback as the remote center of motion approaches the boundary distance. Increasing the feedback may include linearly or exponentially increasing the feedback. Alternatively, increasing the feedback may include linearly increasing the feedback as the remote center of motion approaches the boundary distance and exponentially increasing the feedback as the remote center of motion crosses the boundary distance.

In particular aspects, the method includes determining a check angle that is defined between the jaw axis and a vector between an origin of the tool center-point frame and the remote center of motion when the remote center of motion is within the boundary distance. The method may include providing feedback when the check angle is below a predefined extreme angle.

In another aspect of the present disclosure, a robotic surgical system includes a processing unit, a user interface, and a robotic system. The user interface is in communication with the processing unit and includes an input handle. The robotic system is in communication with the processing unit and including an arm and a tool supported at an end of the arm. The arm defines a remote center of motion and the tool defines a tool center-point frame. The arm and the tool are configured to move to a desired pose in response to an input pose of the input handle. The processing unit is configured to verify when the remote center of motion is within the boundary distance in the desired pose. The processing unit is configured to correct the desired pose when the remote center of motion is within the boundary distance.

In aspects, the processing unit is configured to verify that a check angle defined between the jaw axis and a vector defined between an origin of the tool center-point frame and the remote center of motion is below a predefined extreme angle when the remote center of motion is within the boundary distance in the desired pose. The user interface may be configured to provide feedback to a clinician when the check angle is below the predefined extreme angle. Additionally or alternatively, the input handle may be configured to provide force feedback to a clinician when the remote center of motion approaches the boundary distance in the desired pose.

Further, to the extent consistent, any of the aspects described herein may be used in conjunction with any or all of the other aspects described herein.

BRIEF DESCRIPTION OF THE DRAWINGS

Various aspects of the present disclosure are described hereinbelow with reference to the drawings, which are incorporated in and constitute a part of this specification, wherein:

FIG. 1 is a schematic illustration of a user interface and a robotic system of a robotic surgical system in accordance with the present disclosure;

FIG. 2 is a side view of an exemplary arm and tool of the robotic system of FIG. 1;

FIG. 3 is a model of the arm and tool of FIG. 2 in a first case;

FIG. 4 is a model of the arm and tool of FIG. 2 in a second case;

FIG. 5 is a model of the arm and tool of FIG. 2 in a third case;

FIG. 6 is the model of FIG. 3 illustrating a calculation of a joint angle θ₆;

FIG. 7 is the model of FIG. 6 illustrating a calculation of a joint angle θ₅;

FIG. 8 is the model of FIG. 7 illustrating a calculation of joint angles θ₁ and θ₂;

FIG. 9 is the model of FIG. 8 illustrating a calculation of a joint angle θ₃;

FIG. 10 is a plan view of the {circumflex over (x)}₆, ŷ₆ plane of the model of FIG. 3;

FIG. 11 is a model illustrating determination of u₀;

FIG. 12 is the plan view of FIG. 10 including a boundary line B;

FIG. 13 is a model illustrating a projection method of calculating a rotation of a trocar point Oto a rotated trocar point M;

FIG. 14 is a calculation of a rotation angle ϕ from the trocar point O to the rotated trocar point M of FIG. 13;

FIG. 15 is a calculation of an orientation matrix for the rotation of the Base Frame {circumflex over (x)}₀, ŷ₀, {circumflex over (z)}₀;

FIG. 16 is a model illustrating detection of an extreme condition;

FIG. 17 is a model of a long jawed instrument with the arm of the robotic system of FIG. 1 in accordance with the present disclosure;

FIG. 18 is a calculation of a rotation angle ϕ in a Frame 6 of the trocar point O to the rotated trocar point M of FIG. 17;

FIG. 19 is a model illustrating determination of u₀ for the long jawed instrument of FIG. 17;

FIG. 20 is a projection of an End Effector Frame of FIG. 17 to the rotated trocar point M

FIG. 21 is a calculation of an orientation matrix for the rotation of the Frame 6; and

FIG. 22 is a model illustrating detection of an extreme condition for the long jawed instrument of FIG. 17.

DETAILED DESCRIPTION

Embodiments of the present disclosure are now described in detail with reference to the drawings in which like reference numerals designate identical or corresponding elements in each of the several views. As used herein, the term “clinician” refers to a doctor, a nurse, or any other care provider and may include support personnel. Throughout this description, the term “proximal” refers to the portion of the device or component thereof that is closest to the clinician and the term “distal” refers to the portion of the device or component thereof that is farthest from the clinician.

This disclosure relates generally to correcting the pose of an arm and a tool of a robotic system to avoid singularities between joints and to maintain degrees of freedom of movement of the arm and the tool. Specifically, when a remote center of motion of the arm is within a boundary distance from an origin of a tool center-point frame, the remote center of motion is moved to the boundary distance while maintaining a position of a jaw axis of the tool and rotating the remote center of motion according to the rigid body kinematics. After the rotation, the tool center-point frame is expressed in the rotated remote center of motion frame, and treated as the corrected desired pose for inverse kinematics calculation.

Referring to FIG. 1, a robotic surgical system 1 in accordance with the present disclosure is shown generally as a robotic system 10, a processing unit 30, and a user interface 40. The robotic system 10 generally includes linkages or arms 12 and a robot base 18. The arms 12 moveably support an end effector or tool 20 which is configured to act on tissue. The arms 12 each have an end 14 that supports an end effector or tool 20 which is configured to act on tissue. In addition, the ends 14 of the arms 12 may include an imaging device 16 for imaging a surgical site. The user interface 40 is in communication with robot base 18 through the processing unit 30.

The user interface 40 includes a display device 44 which is configured to display three-dimensional images. The display device 44 displays three-dimensional images of the surgical site which may include data captured by imaging devices 16 positioned on the ends 14 of the arms 12 and/or include data captured by imaging devices that are positioned about the surgical theater (e.g., an imaging device positioned within the surgical site, an imaging device positioned adjacent the patient, imaging device 56 positioned at a distal end of an imaging linkage or arm 52). The imaging devices (e.g., imaging devices 16, 56) may capture visual images, infra-red images, ultrasound images, X-ray images, thermal images, and/or any other known real-time images of the surgical site. The imaging devices transmit captured imaging data to the processing unit 30 which creates three-dimensional images of the surgical site in real-time from the imaging data and transmits the three-dimensional images to the display device 44 for display.

The user interface 40 also includes input handles 42 which are supported on control arms 43 which allow a clinician to manipulate the robotic system 10 (e.g., move the arms 12, the ends 14 of the arms 12, and/or the tools 20). Each of the input handles 42 is in communication with the processing unit 30 to transmit control signals thereto and to receive feedback signals therefrom. Additionally or alternatively, each of the input handles 42 may include input devices (not shown) which allow the surgeon to manipulate (e.g., clamp, grasp, fire, open, close, rotate, thrust, slice, etc.) the tools 20 supported at the ends 14 of the arms 12.

Each of the input handles 42 is moveable through a predefined workspace to move the ends 14 of the arms 12 within a surgical site. The three-dimensional images on the display device 44 are orientated such that movement of the input handle 42 moves the ends 14 of the arms 12 as viewed on the display device 44. It will be appreciated that the orientation of the three-dimensional images on the display device may be mirrored or rotated relative to view from above the patient. In addition, it will be appreciated that the size of the three-dimensional images on the display device 44 may be scaled to be larger or smaller than the actual structures of the surgical site permitting a clinician to have a better view of structures within the surgical site. As the input handles 42 are moved, the tools 20 are moved within the surgical site as detailed below. As detailed herein, movement of the tools 20 may also include movement of the ends 14 of the arms 12 which support the tools 20.

For a detailed discussion of the construction and operation of a robotic surgical system 1, reference may be made to U.S. Pat. No. 8,828,023, the entire contents of which are incorporated herein by reference.

With reference to FIG. 2, the end 14 of an arm 12 of the robotic system 10 is moveable about a Remote Center of Motion (RCM) 22 in four Degrees of Freedom (DOF) or joints. In addition, the tool 20 is pivotal in two DOF about a first tool joint 24 and a second tool joint 26, respectively. The arm 12 of the robotic system 10 defines a frame x₀, y₀, z₀ (the Base Frame) positioned at the RCM. The first DOF or yaw joint of the arm 12 is represented by the frame x₁, y₁, z₁ (Frame 1) with the position of the arm 12 about the yaw joint represented as joint angle θ₁. The second DOF or pitch joint of the arm 12 is represented by the frame x₂, y₂, z₂ (Frame 2) with the position of the arm 12 about the pitch joint represented as joint angle θ₂. The third DOF or roll joint of the arm 12 is represented by the frame x₃, y₃, z₃ (Frame 3) with the position of the arm 12 about the roll joint represented as joint angle θ₃. The fourth DOF or linear joint is represented by the frame x₄, y₄, z₄ (Frame 4) and with the position of the first tool joint 24 from the RCM 22 represented as distance d₄. Movement of the tool 20 about the first tool joint 24 is defined in the fifth DOF or tool pitch joint represented in the frame x₅, y₅, z₅ (Frame 5) with the position of the tool pitch joint represented as joint angle θ₅. Movement of the tool 20 about the second tool joint 26 is defined in the sixth DOF or tool yaw joint in the frame x₆, y₆, z₆ (Frame 6) with the position in the tool yaw joint represented as joint angle θ₆. The orientation of the end effector 29 is represented by the {circumflex over (x)}₆ axis.

Using a typical forward kinematics model based on the frame attachments detailed above, the Denavit-Hartenberg (DH) parameters of the intracorporeal chain is shown in Table 1 below. As used herein “i” is the frame number, “a” is the length from the common normal, “α” is the angle about the common normal, “D” is the offset along previous z axis to the common normal, “θ” is the angle about previous z axis, and the joint type is the type of movement about the joint. It will be appreciated that the common normal is along the arm 12.

TABLE 1 i a_(i-1) α_(i-1) D_(i) θ_(i) Joint Type 1 0 0 0 θ₁ Rotational 2 0 −π/2 0 θ_(2−π/2) Rotational 3 0 −π/2 0 θ₃ Rotational 4 0 0 d₄ 0 Linear 5 0 −π/2 0 θ_(5−π/2) Rotational 6 a₆ −π/2 0 θ₆ Rotational Further, the Homogenous transform for movement in the six DOF is as follows:

$\begin{matrix} {{\,_{i}^{i - 1}T} = \begin{bmatrix} {c\theta_{i}} & {{- s}\theta_{i}} & 0 & a_{i - 1} \\ {s\theta_{i}c\alpha_{i - 1}} & {c\theta_{i}c\alpha_{i - 1}} & {{- s}\alpha_{i - 1}} & {{- s}\alpha_{i - 1}d_{i}} \\ {s\theta_{i}s\alpha_{i - 1}} & {c\theta_{i}s\alpha_{i - 1}} & {c\alpha_{i - 1}} & {c\alpha_{i - 1}d_{i}} \\ 0 & 0 & 0 & 1 \end{bmatrix}} & (1) \end{matrix}$

cθ

cos θ and sθ

sin θ, this convention will be used throughout this disclosure. Thus, the final pose of frame 6 in the base frame 0 is defined as:

₆ ⁰ T= ₁ ⁰ T ₂ ¹ T ₃ ² T ₄ ³ T ₅ ⁴ T ₆ ⁵ T  (2)

With reference to FIG. 3, an inverse kinematic model for the arm 12 and the tool 20 in accordance with the present disclosure is disclosed. With reference to FIG. 3 and used in the following equations, the RCM 22 is represented by trocar point “O” and is the point at which the end 14 of the arm 12 or the tool 20 passes through a trocar (not shown) in to the body cavity of the patient. The tool pitch joint 24 is represented by point “P” and the tool yaw joint 26 is represented by yaw point “T”. A yoke 25 (FIG. 2) of the tool 20 may be represented by the line “PT”. In this model a frame of a jaw 29 of the tool 20 is represented by the Frame 6 and may be referred to as the tool-center-point frame (TCP frame) with the jaw direction positioned along the i6 axis. In addition, the yaw point “T” may be referred to as the “TCP” point herein.

As shown in FIG. 3, the jaw direction {right arrow over (T)}x₆ is known as the direction of the {circumflex over (x)}₆ axis. With the jaw direction {right arrow over (T)}x₆ fixed, the joint angle θ₆ can be determined by placing the following two constraints on the pitch point “P”. First, the pitch point “P” is in a yaw plane “YP” defined by rotation of the yoke “PT” around the {circumflex over (z)}₆ axis, shown as the dashed circle “YP” in FIG. 3, with both the yoke PT and the jaw direction {right arrow over (T)}x₆ lying in the yaw plane “YP”. As shown, when joint angle θ₆ changes, the pitch point “P” will be in the yaw plane “YP” a distance a₆ from the yaw point T. Second, the pitch point “P” is also in a pitch plane “PP” which is perpendicular to the yaw plane “YP” defined by the trocar point “O” and the {circumflex over (z)}₆ axis.

With these two constraints placed on the pitch point “P”, three cases can be defined to determine the location of the pitch point “P”. In the first case modeled in FIG. 3, the pitch plane “PP” is uniquely defined by the trocar point “O” and the {circumflex over (z)}₆ axis and intersects the yaw plane “YP” at the pitch point “P” on a proximal side (i.e., closer to the trocar point “O”) of the yaw point “T”. Thus, in the first case, the joint angle θ₆ and the joint angle θ₅ are in a range of about −π/2 to about π/2. As used herein, angles are expressed in radians where π is equal to 180°.

In the second case modeled in FIG. 4, the pitch plane “PP” is uniquely defined by the trocar point “O” and the {circumflex over (z)}₆ axis and intersects the yaw plane “YP” at the pitch point “P” on a distal side (i.e., away to the trocar point “O”) of the yaw point “T”. Thus, in the second case, the joint angle θ₆ and the joint angle θ₅ are outside of a range of about −π/2 to about π/2.

In the third case modeled in FIG. 5, the {circumflex over (z)}₆ axis is directed towards the trocar point “O” such that the trocar point “O” and the {circumflex over (z)}₆ axis fail to uniquely define the pitch plane “PP”. In the third case a singularity exists which makes it difficult to determine a range of the joint angle θ₆ and the joint angle θ₅. The third case can be modeled as described in greater detail below.

Referring back to the first case shown in FIG. 3, the determination of the joint angle θ₆, the joint angle θ₅, and the distance d₄ is detailed in accordance with the present disclosure. First, assuming that the desired pose of the “TCP” Frame is defined by the position

$\begin{bmatrix} u \\ v \\ w \end{bmatrix}$

and the rotation ₀ ⁶R which are both defined in the Base Frame, the homogenous transform of the “TCP” Frame in the Base Frame can be expressed as:

$\begin{matrix} {{\,_{6}^{0}T} = \begin{bmatrix} {\,_{6}^{0}R} & \begin{bmatrix} u \\ v \\ w \end{bmatrix} \\ 0 & 1 \end{bmatrix}} & (3) \end{matrix}$

To determine the joint angles, the Base Frame is expressed in the TCP Frame as:

$\begin{matrix} {{\,_{6}^{0}T} = \begin{bmatrix} {\,_{6}^{0}R} & \begin{bmatrix} u^{\prime} \\ v^{\prime} \\ w^{\prime} \end{bmatrix} \\ 0 & 1 \end{bmatrix}} & (4) \end{matrix}$

Based on the property that ₀ ⁶T=[₆ ⁰T]⁻¹, ₀ ⁶R=[₆ ⁰R]⁻¹=₆ ⁰R^(T) it can be determined that:

$\begin{matrix} {\begin{bmatrix} u^{\prime} \\ v^{\prime} \\ w^{\prime} \end{bmatrix} = {- {{\,_{6}^{0}R^{T}}\begin{bmatrix} u \\ v \\ w \end{bmatrix}}}} & (5) \end{matrix}$

Referring now to FIG. 6, the coordinate of the trocar point “O” in the “TCP”

Frame is

$\begin{bmatrix} u^{\prime} \\ v^{\prime} \\ w^{\prime} \end{bmatrix}.$

The projection of the trocar point “O” in the {circumflex over (x)}₆, ŷ₆ plane is point “O′” and the projection of point “O′” on the ŷ₆ axis is “O″”.

Applying the right hand rule, the relative sign and quarter locations are as follows:

$\begin{matrix} \left\{ {\begin{matrix} {{{\pi/2} < \theta_{6} < \pi},{{{when}u^{\prime}} > 0},{{v^{\prime} > 0};}} \\ {{0 < \theta_{6} < {\pi/2}},{{{when}u^{\prime}} < 0},{{v^{\prime} > 0};}} \\ {{{{- \pi}/2} < \theta_{6} < 0},{{{when}u^{\prime}} < 0},{{v^{\prime} < 0};}} \\ {{{- \pi} < \theta_{6} < {{- \pi}/2}},{{{when}u^{\prime}} > 0},{v^{\prime} < 0}} \end{matrix}.} \right. & (6) \end{matrix}$

Taking into account the relative sign and quarter location, as detailed above, in Equation 6:

θ₆ =a tan 2(v′,−u′)  (7)

With reference to FIG. 7, the distance between the yaw point “T” and point “O′” is given by TO′=−u′cos θ₆+v′ sin θ₆ and the distance between the pitch point “P” and point “O′” is given by PO′=−u′cos θ₆+v′ sin θ₆−a₆. Thus, the joint angle θ₅ is given by:

θ₅ =a tan 2(w′,−u′ cos θ₆ +v′ sin θ₆ −a ₆)  (8)

In addition, the distance d₄ between the trocar point “O” and the pitch point “P” is:

d ₄ =w′ sin θ₅+(−u′cos θ₆ +v′ sin θ₆ −a ₆) cos θ₅  (9)

Now that the joint angle θ₆, the joint angle θ₅, and the distance d₄ have been determined, the joint angle θ₆, the joint angle θ₅, and the distance d₄ can be used to determine the joint angle θ₁, the joint angle θ₂, and the joint angle θ₃. In light of Equation 2 above, a rotation matrix chain can be expressed as:

₀ ⁶ R= ₁ ⁰ R ₂ ¹ R ₃ ² R ₄ ³ R ₅ ⁴ R ₆ ⁵ R  (10)

Since joint angle θ₅ and joint angle θ₆ are now known, in view of Equation 1, ₆ ⁵R can be expressed as:

$\begin{matrix} {{\,_{6}^{5}R} = \begin{bmatrix} {c\theta_{6}} & {{- s}\theta_{6}} & 0 \\ 0 & 0 & 1 \\ {{- s}\theta_{6}} & {{- c}\theta_{6}} & 0 \end{bmatrix}} & (11) \end{matrix}$

In addition, ₅ ⁴R can be expressed as:

$\begin{matrix} {{\,_{5}^{4}R} = \begin{bmatrix} {s\theta_{5}} & {c\theta_{5}} & 0 \\ 0 & 0 & 1 \\ {c\theta_{5}} & {{- s}\theta_{5}} & 0 \end{bmatrix}} & (12) \end{matrix}$

The transpose of the product of the above two equations is expressible as:

$\begin{matrix} {\left( {{\,_{5}^{4}R}{\,_{6}^{5}R}} \right)^{T} = \begin{bmatrix} {s\theta_{5}c\theta_{6}} & {{- s}\theta_{6}} & {c\theta_{5}c\theta_{6}} \\ {{- s}\theta_{5}s\theta_{6}} & {{- c}\theta_{6}} & {{- c}\theta_{5}s\theta_{6}} \\ {c\theta_{5}} & 0 & {{- s}\theta_{5}} \end{bmatrix}} & (13) \end{matrix}$

Then multiplying Equation 13 from the right side to Equation 10:

₆ ⁰ R(₅ ⁴ R ₆ ⁵ R)^(T)=₆ ⁰ R(₅ ⁴ R ₆ ⁵ R)⁻¹=₁ ⁰ R ₂ ¹ R ₃ ² R ₄ ³ R ₅ ⁴ R ₆ ⁵ R(₅ ⁴ R ₆ ⁵ R)⁻¹=₄ ⁰ R  (14)

Further, by defining

${\,_{4}^{0}R}\overset{\Delta}{=}{\overset{\_}{R} = \begin{bmatrix} {\overset{\_}{R}}_{11} & {\overset{\_}{R}}_{12} & {\overset{\_}{R}}_{13} \\ {\overset{\_}{R}}_{21} & {\overset{\_}{R}}_{22} & {\overset{\_}{R}}_{23} \\ {\overset{\_}{R}}_{31} & {\overset{\_}{R}}_{32} & {\overset{\_}{R}}_{33} \end{bmatrix}}$

provides that:

$\begin{matrix} {\begin{bmatrix} {\overset{\_}{R}}_{11} & {\overset{\_}{R}}_{12} & {\overset{\_}{R}}_{13} \\ {\overset{\_}{R}}_{21} & {\overset{\_}{R}}_{22} & {\overset{\_}{R}}_{23} \\ {\overset{\_}{R}}_{31} & {\overset{\_}{R}}_{32} & {\overset{\_}{R}}_{33} \end{bmatrix} = {{\,_{6}^{0}R}\begin{bmatrix} {s\theta_{5}c\theta_{6}} & {{- s}\theta_{6}} & {c\theta_{5}c\theta_{6}} \\ {{- s}\theta_{5}s\theta_{6}} & {{- c}\theta_{6}} & {{- c}\theta_{5}s\theta_{6}} \\ {c\theta_{5}} & 0 & {{- s}\theta_{5}} \end{bmatrix}}} & (15) \end{matrix}$

Referring to FIG. 8, the projection of the pitch point “P” in the {circumflex over (x)}₀, ŷ₀ plane is point “P′” and the projection of the point “P′” on the {circumflex over (x)}₀ axis is “P′”. Thus, P′P″=−R ₂₃·OP and OP″=−R ₁₃·OP. Accordingly, the joint angle θ₁ can be expressed as:

θ₁ =a tan 2(− R ₂₃ ,−R ₁₃)  (16)

In addition, joint angle θ₂ can be expressed as:

θ₂ =a tan 2( R ₃₃,√{square root over ( R ₁₃ ² +R ₂₃ ²)})  (17)

It can be observed that when θ₂=±π/2, shaft OP of the arm 12 or tool 20 (FIG. 2) is aligned with the rotation axis of joint 1. This is a singularity where joint angle θ₁ and joint angle θ₃ are not uniquely defined. A robot can be designed in such a way that the joint angle θ2 is mechanically constrained to or in a range (e.g., about −70° to about) 70°. In such a range, θ₂ will not reach the singularity. In normal operation, this singularity is checked and rejected by the processing unit 30 (FIG. 1).

With reference to FIG. 9, a {circumflex over (z)}_(0′) axis is created at the pitch point “P” that is parallel to the {circumflex over (z)}₀ axis, the projection point z_(0′) in the plane {circumflex over (x)}₄, ŷ₄ is point z_(0″). Thus, the joint angle θ₃ can be expressed as:

θ₃ =a tan 2(− R ₃₂ ,R ₃₁)  (18)

Using the previous derivation of the rotation matrix above, if the unit vector of the frame is defined as {circumflex over (x)}, ŷ, {circumflex over (z)}, the equation 15 can be expressed as:

$\begin{matrix} {\begin{bmatrix} {\overset{\_}{R}}_{11} & {\overset{\_}{R}}_{12} & {\overset{\_}{R}}_{13} \\ {\overset{\_}{R}}_{21} & {\overset{\_}{R}}_{22} & {\overset{\_}{R}}_{23} \\ {\overset{\_}{R}}_{31} & {\overset{\_}{R}}_{32} & {\overset{\_}{R}}_{33} \end{bmatrix} = \begin{bmatrix} {{\hat{x}}_{4} \cdot {\hat{x}}_{0}} & {{\hat{y}}_{4} \cdot {\hat{x}}_{0}} & {{\hat{z}}_{4} \cdot {\hat{x}}_{0}} \\ {{\hat{x}}_{4} \cdot {\hat{y}}_{0}} & {{\hat{y}}_{4} \cdot {\hat{y}}_{0}} & {{\hat{z}}_{4} \cdot {\hat{y}}_{0}} \\ {{\hat{x}}_{4} \cdot {\hat{z}}_{0}} & {{\hat{y}}_{4} \cdot {\hat{z}}_{0}} & {{\hat{z}}_{4} \cdot {\hat{z}}_{0}} \end{bmatrix}} & (19) \end{matrix}$

With respect to the second case, shown in FIG. 4, the solution for the joint angle θ₆ is labeled θ_(6′). It will be appreciated that as shown in FIG. 4:

θ₆−θ_(6′)=π  (20)

Thus, to determine the joint angles in the second case, the joint angle θ₆ is calculated in a manner similar to the first case detailed above and then Equation 20 is used to determine the joint angle θ_(6′) for the second case. Once the joint angle θ_(6′) for the second case is determined, the rest of the joint angles θ₁, θ₂, θ₃, and θ₅ as well as the distance d₄ can be determined using the above method.

Now turning to the third case, as shown in FIG. 5, the third case can be detected when

$\begin{matrix} \left\{ \begin{matrix} {{u^{\prime} \cong 0};} \\ {v^{\prime} \cong 0} \end{matrix} \right. & (21) \end{matrix}$

If the singularity of the third case is detected, the previous joint angle θ₆ can be used. Thus, with θ₆=θ_(6,previous), the rest of the joint angles θ₁, θ₂, θ₃, and θ₅ as well as the distance d₄ can be determined using the above method.

As detailed above, the inverse kinematics solution provides mathematically precise mapping between an input pose and joint angles of the surgical robot 10. In the inverse kinematics solution, other considerations such as joint limits and joint speed limits are not taken into account. For example, due to mechanical constraints of the design of the surgical robot 10, the joint limits of joint angles θ₅ and θ₆ are usually in the range of about −π/2 to about π/2. The mechanical constraints of the surgical robot 10 prevent cases 2 and 3, detailed above, from being physically realizable since one of the joint angles will be greater than π/2. However, the poses presented in cases 2 and 3 may be commanded by the input device 42 because the input device 42 and the surgical robot 10 have different kinematic constructions and working spaces. For example, case 3 is a singularity where the inverse kinematic solution is not unique. In addition, when the joint angle θ₅ approaches ±π/2, a small rotation of the input pose along the axis x₆ would cause a dramatic change in joint angle θ₃. Such a dramatic change may violate a joint speed limit and an acceleration limit of the roll joint of the arm 12 represented by joint angle θ₃. It will be appreciated that such sudden motions are undesirable in clinical settings.

To avoid an unrealizable configuration or a singularity condition, the joint angle θ₅ is restricted in a range of about −5π/12 to about 5π/12 and the joint angle θ₆ is restricted in a range of about −π/2 to about π/2. One method of achieving this is in a brutal-force method by clamping the solution provided by the inverse kinematics solution. However, the brutal-force method may cause discontinuity in the inverse kinematics solution which is not desirable in a clinical setting.

Alternatively, as detailed below, a method may be used to correct the input pose after it crosses from a desirable solution space to an undesirable solution space. In the desirable solution space, the joint limits and the joint speed limits are acceptable and in the undesirable solution space at least one of the joint limits or the joint speed limits are exceeded or undesirable. Once the input pose is corrected, the corrected input pose can be solved by using the inverse kinematics solution detailed above having deniable joint angles. Such a method may avoid discontinuities in the joint angles when the boundary between the desirable and undesirable solution spaces is crossed. In addition, such a method can realize the position component of the input pose by only correcting an orientation component of the TCP frame to avoid unintended motion of the TCP frame from being introduced into the inverse kinematic solution.

As described below, a projection method that corrects an orientation component of the TCP frame of a desired input pose while maintaining a position component of the desired input pose is disclosed in accordance with the present disclosure. In the projection method, a boundary plane that separates a desirable and undesirable solution space may be defined by locating the trocar point on a spherical surface. A boundary plane then divides the spherical surface into two sections. If the trocar point is located on one side of the boundary (e.g., the right side), the input pose does not require correction. If no correction is required, the inverse kinematics solutions are desirable and within the joint limits and the joint speed limits. When the trocar point is located on the other side of the boundary (e.g., the left side), the input pose is projected to the boundary plane. If correction is required, the input pose is corrected by rotating the TCP frame to a projection point located on the boundary plane according to rigid body kinematics and expressing the corrected TCP frame in a rotated base frame for the inverse kinematics solution. After the correction of the TCP frame, the inverse kinematics solution for the corrected TCP frame will be desirable and within the joint limits and the joint speed limits.

With reference to FIGS. 10-15, a method of correcting an input pose for the arm 12 and the tool 20 (FIG. 2) in the event of the desired input pose being in an undesirable solution space (i.e., case 2, case 3, or a singularity) will be described in detail. Knowing that the joint angle θ₆ is physically limited to about −π/2 to about π/2 and that the joint angle θ₅ is physically limited to about −π/2 to about π/2, the projection of the trocar point “O” in the plane {circumflex over (x)}₆, ŷ₆ lies in region “S” of FIG. 10.

When the projection point “O′” of the trocar point “O” is close to a circle about the yaw point “T” with a radius equal to the length a₆ of the yoke “PT”, the joint angle θ₅ will approach ±π/2. Thus, any small orientation change of the {circumflex over (z)}₆ axis will cause a large change in the joint angle θ₆ and the joint angle θ₂.

Continuing to refer to FIG. 10, it will be appreciated that the projection point “O′” cannot lie outside of the region “S” due to the physical limits of joint angle θ₆ and/or joint angle θ₅.

Referring to FIG. 12, during operation of the arm 12 and the tool 20, it is desirable that the projection point “O′” is positioned beyond, to the right as shown, of a dotted boundary line “B” with a dimension u_(o) from the ŷ₆ axis which is greater than the length a₆ of the yoke “PT” which requires that:

u′<u ₀  (22)

The coordinate u₀ is chosen to meet the physical limits of joint angle θ₅ and joint angle θ₆ to avoid a singular condition. As described in detail below, the projection point “O′” may be positioned on either side or on the boundary line “B”.

With particular reference to FIG. 11, a distance r″ is defined between the projection point “O” and pitch point “P”, such that

(r″cos θ_(5,max) +a ₆)²+(r″ sin θ_(5,max))² =r ₀ ²  (23)

From Equation 23, r″ can be calculated, and coordinate u₀ can be expressed as

u ₀=−(a ₆ +r″ cos θ_(5,max))  (24)

where θ₅, max is a desirable limit (i.e., mechanical constraint) on joint angle θ₅ (e.g., 75° or 5π/12).

If the projection point “O′” lies on the left side of the boundary line “B”, the projection point “O′” is systematically projected to the boundary line “B”. In this manner, the yaw point “T” is rotated according to the projection rule, as detailed below, such that after the rotation of the yaw point “T”, a new pose of the “TCP” Frame is realized.

Referring to FIG. 13, the trocar point “O” and the yaw point “T” are connected such that a distance between the yaw point “T” and the trocar point “O” is distance r₀. The distance r₀ is equal to √{square root over (u′²+v′²+w′²)}. With the distance r₀ held constant, the vector TO is rotated in the “TCP” Frame around the yaw point “T” such that the trocar point “O” will travel on a sphere centered at the yaw point “T”. When the projection point “O′” lies on the left side of the boundary line “B” as illustrated in FIG. 11, the yaw point “T” will rotate until the trocar point “O” is rotated to the point “M” such that the projection point “O′” lies on the boundary line “B”.

During this rotation, the orientation of the vector TO in the ŷ₆, {circumflex over (z)}₆ plane remains constant. In accordance with the projection rule

$\begin{matrix} \left\{ \begin{matrix} {u^{''} = u_{0}} \\ {v^{''} = {kv}^{\prime}} \\ {w^{''} = {kw}^{\prime}} \end{matrix} \right. & (25) \end{matrix}$

Where the linear constant k is given by:

$\begin{matrix} {k = \sqrt{\frac{r_{0}^{2} - u_{0}^{2}}{v^{\prime 2} + w^{\prime 2}}}} & (26) \end{matrix}$

Referring to FIG. 13, the rotation angle “ϕ” of the yaw point “T” can be determined as:

ϕ=2a sin(l/2r ₀)  (27)

where l=√{square root over ((u′−u₀)²+(√{square root over (r₀ ²−u′²)}−√{square root over (r₀ ²−u₀ ²)})²)}.

Referring now to FIG. 15, new frames x₇, y₇, z₇ (Frame 7) and x_(7′), y_(7′), and z_(7′) (Frame 7′) are defined. Both Frames 7 and 7′ originate at the yaw point “T”. For Frame 7, the {circumflex over (x)}₇ axis is aligned with the vector {right arrow over (T)}O and the {circumflex over (z)}₇ axis is along the direction of {right arrow over (T)}M×{right arrow over (T)}O. For Frame 7′, the {circumflex over (x)}_(7′) axis is aligned with the vector {right arrow over (T)}M and the {circumflex over (z)}_(7′) axis is along the direction of {right arrow over (T)}M×{right arrow over (T)}O. After the rotation, the Base Frame becomes frame x₀′, y₀′, and z_(0′) (Rotated Base Frame). Thus, when ϕ≤π/2, {right arrow over (T)}z_(7′)={right arrow over (T)}M×{right arrow over (T)}O/|{right arrow over (T)}M×{right arrow over (T)}O|, and when ϕ>π/2, {right arrow over (T)}z_(7′)×−{right arrow over (T)}M×{right arrow over (T)}O/|{right arrow over (T)}M×{right arrow over (T)}O|, the Base Frame expressed from Frame 6 through Frame 7 is:

₀ ⁶ T= ₇ ⁶ T ₀ ⁷ T  (28)

and the Rotated Base Frame expressed from Frame 6 through Frame 7′ is:

₀ ⁶ T= _(7′) ⁶ T ₀ ^(7′) T  (29)

During rotation, the Base Frame in Frame 7 is equal to the Rotated Base Frame in Frame 7′ such that:

₀ ⁷ T= ₀ ^(7′) T  (30)

Thus, the Rotated Base Frame in Frame 6 can be calculated as:

₀ ⁶ T= ₇ ⁶ T[₇ ⁶ T]⁻¹ ₀ ⁶ T  (31)

From Equation 31 we have:

$\begin{matrix} {{\,_{7}^{6}T} = \begin{bmatrix} \begin{matrix} {\hat{x}}_{7^{\prime}} & {\hat{y}}_{7^{\prime}} & {\hat{z}}_{7^{\prime}} \end{matrix} & \begin{bmatrix} u_{0} \\ v^{''} \\ w^{''} \end{bmatrix} \\ 0 & 1 \end{bmatrix}} & (32) \end{matrix}$ and $\begin{matrix} {{\,_{7}^{6}T} = \begin{bmatrix} \begin{matrix} {\hat{x}}_{7} & {\hat{y}}_{7} & {\hat{z}}_{7} \end{matrix} & \begin{bmatrix} u^{\prime} \\ v^{\prime} \\ w^{\prime} \end{bmatrix} \\ 0 & 1 \end{bmatrix}} & (33) \end{matrix}$

During the above posing, it is assumed, for simplicity, that the trocar point “O” and the Base Frame are rotated and that the yaw point “T” and the “TCP” Frame are kept constant. In fact, during the above movement, the trocar point “O”, the yaw point “T”, and the Base Frame are kept constant and only the “TCP” Frame is rotated. Due to the fact that the rotation is relative, if the “TCP” Frame is rotated instead of the Base Frame, then the rotated “TCP” Frame can be expressed in the Base Frame as:

$\begin{matrix} {{\,_{6}^{0}T} = \begin{bmatrix} {\,_{0^{\prime}}^{6}R_{\text{ }}^{T}} & \begin{bmatrix} u \\ v \\ w \end{bmatrix} \\ 0 & 1 \end{bmatrix}} & (34) \end{matrix}$

where _(0′) ⁶R is from the homogenous transform _(0′) ⁶T in Equation 31.

Referring to FIG. 16, in some extreme conditions, when u′>u_(extreme), another singularity condition is approached. This singularity condition is unlikely due to the range of motion of anatomical limits of the hands of a clinician that are engaged with the input device 43 (FIG. 1). However, when θ₅>θ_(5,extreme) (e.g., 150°), {circumflex over (x)}₆ is pointing back to the trocar point “O” and the motion of {circumflex over (x)}₆ will be significantly amplified. The motion from the inverse kinematic solution may become less stable. Accordingly, the algorithm may provide feedback to a clinician informing or warning the clinician that the singularity condition is being approached. In addition, if necessary, the robotic system 10 may decouple or stop the mapping between the input device 43 and the arm 12 of the surgical robot 10. Similar to the determination of u₀ in Equations 23 and 24, the distance between trocar point “O” and pitch point “P” can be expressed as:

(r″ cos (π−θ_(5,extreme))−a ₆)²+(r″ sin(π−θ_(5,extreme)))² =r ₀ ²  (35)

Solving for r″ from the above equation 35 provides:

u _(extreme) =r″ cos(π−θ_(5,extreme))−a ₆  (36)

In light of the above, the steps of the complete inverse kinematics algorithm for the arm 12 and the tool 20 (FIG. 2) are:

-   -   1) For each given input pose ₆ ⁰T, calculate the trocar point         “O” position in the TCP frame using Equation 5;     -   2) Use Equation 22 to check if the input pose needs correction,         if correction is needed got to step 3, otherwise, skip to step         5;     -   3) Check if u′>u_(extreme) with Equation 35, if true provide         feedback, else got to Step 4;     -   4) Use Equations 23 to 31 to calculate a corrected pose _(6′)         ⁰T, and replace the original pose with the corrected pose;     -   5) Use Equations 6 to 18 to calculate the joint angles θ₁, θ₂,         θ₃, θ₅, and θ₆ as well as the distance d₄.

In the inverse kinematics algorithm above, checking if the input pose needs correction is accomplished by choosing u₀ in Equation 22 as a function of the yaw point “T” and a maximum joint angle θ_(5, max). For example, the maximum joint angle θ_(5, max) may be selected as 5π/12 (i.e., 75°).

As detailed above, the tool 20 (FIG. 2) has two DOF in addition to a grasping function. It is contemplated that other tools may be used with this inverse kinematic model by manipulating constraints of the joint angles as detailed below.

When the tool 20 is a straight instrument, the joint angle θ₅ and the joint angle θ₆ are about zero such that the straight instrument is treated as a wristed instrument. Accordingly, Equation 23 can be modified as follows:

$\begin{matrix} \left\{ \begin{matrix} {u^{''} = {k^{\prime}u^{\prime}}} \\ {v^{''} = 0} \\ {w^{''} = {k^{\prime}w^{\prime}}} \end{matrix} \right. & (37) \end{matrix}$

When the tool 20 is a stapler instrument, a jaw (not shown) of the stapler instrument is typically pivotal in one DOF such that the joint angle θ₆ is substantially zero. Thus, Equation 23 can be modified as follows:

$\begin{matrix} \left\{ \begin{matrix} {u^{''} = {k^{\prime}u^{\prime}}} \\ {v^{''} = 0} \\ {w^{''} = {k^{\prime}w^{\prime}}} \end{matrix} \right. & (38) \end{matrix}$ ${{{where}k^{\prime}} = \frac{r_{0}}{\sqrt{u^{\prime 2} + w^{\prime 2}}}},$

and the rest of the algorithm detailed above continues to operate properly with a stapler instrument as the tool 20.

When the tool 20 is another type of instrument with a single DOF the joint angle θ₅ may be substantially zero. Similar to the stapler instrument above, Equation 23 can be modified such that:

$\begin{matrix} \left\{ \begin{matrix} {u^{''} = {k^{\prime}u^{\prime}}} \\ {v^{''} = {k^{\prime}v^{\prime}}} \\ {w^{''} = 0} \end{matrix} \right. & (39) \end{matrix}$ ${{{where}{}k^{''}} = \frac{r_{0}}{\sqrt{u^{\prime 2} + v^{\prime 2}}}},$

and the rest of the algorithm detailed above continues to operate properly with such an instrument.

It will be appreciated that Equations 37-39 are applied after the correction Equations 25-34 have been applied. Thus, two rounds of corrections are required.

When tool 20 is an instrument with long jaws 29 (e.g., a bowel grasper), an additional frame may be needed. As shown in FIG. 17, a frame x_(e), y_(e), z_(e) (End Effector Frame) is defined orientated similar to Frame 6 and offset a distance a₇ from Frame 6. As shown, the End Effector Frame is defined adjacent a tip of the long jaws 29 along a centerline of the long jaws 29. It is contemplated that the End Effector Frame may be on the centerline of the long jaws 29, in a middle of the long jaws 29, or any point along or between the long jaws 29.

Referring to FIGS. 18-20, the determination of u₀ needs to contemplate the distance a₇. With particular reference to FIG. 19, similar to the derivation of Equation 23

(r″ cos θ_(5,max) +a ₆ +a ₇)²+(r″ sin θ_(5,max))² =r ₀ ²  (40)

Solving for r″ in Equation 40, coordinate u₀ can be expressed as:

u ₀=−(a ₆ +a ₇ +r″ cos θ_(5,max))  (41)

Following the projection method as detailed above, Equation 3 becomes:

$\begin{matrix} {{\,_{6}^{0}T} = \begin{bmatrix} {\,_{6}^{0}R} & \begin{bmatrix} u \\ v \\ w \end{bmatrix} \\ 0 & 1 \end{bmatrix}} & (42) \end{matrix}$

Expressing the Base Frame in the End Effector Frame provides:

$\begin{matrix} {{\,_{6}^{0}T} = \begin{bmatrix} {\,_{6}^{0}R} & \begin{bmatrix} u^{\prime} \\ v^{\prime} \\ w^{\prime} \end{bmatrix} \\ 0 & 1 \end{bmatrix}} & (43) \end{matrix}$

and the position of the trocar point “O” in the End Effector Frame is:

$\begin{matrix} {\begin{bmatrix} u^{\prime} \\ v^{\prime} \\ w^{\prime} \end{bmatrix} = {- {{\,_{6}^{0}R_{\text{ }}^{T}}\begin{bmatrix} u \\ v \\ w \end{bmatrix}}}} & (44) \end{matrix}$

Referring to FIG. 18, u′ is constrained according to Equation 22. If u′>u₀, where u₀ can be dynamically constrained by using Equation 40, the trocar point “O” is projected to rotated trocar point “M” as shown in FIG. 20. The coordinates of the rotated trocar point “M” is calculated according to Equation 25.

As shown in FIG. 18, the distance between trocar point “O” and rotated trocar point “M” is:

l=√{square root over ((u′−u ₀)²+(√{square root over (r ₀ ² −u′ ²)}−√{square root over (r ₀ ² −u ₀ ²)})²)}  (45)

and the distance between the trocar point “O” and the yaw point “T” is:

r′ ₀=√{square root over (r ₀ ² −u′ ²+(u′+a ₇)²)}  (46)

and the distance between the yaw point “T” and the rotated trocar point “M” is:

r′ ₀=√{square root over (r ₀ ² −u ₀ ²+(−u ₀ −a ₇)²)}  (47)

The rotation angle ϕ′ can be expressed as:

$\begin{matrix} {\phi^{\prime} = {a{\cos\left( \frac{l^{2} - r_{0}^{\prime 2} - r_{0}^{''2}}{2r_{0}^{\prime}r_{0}^{''}} \right)}}} & (48) \end{matrix}$

Referring to FIG. 21, following a similar derivation to that of Equations 25-34, the rotation angle is ϕ′ instead of ϕ. It will be appreciated that Equation 31 remains accurate; however, Equation 32 changes to the following:

$\begin{matrix} {{\,_{7}^{6}T} = \begin{bmatrix} \begin{matrix} {\hat{x}}_{7^{\prime}} & {\hat{y}}_{7^{\prime}} & {\hat{z}}_{7^{\prime}} \end{matrix} & \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix} \\ 0 & 1 \end{bmatrix}} & (49) \end{matrix}$

and Equation 33 becomes the following:

$\begin{matrix} {{\,_{7}^{6}T} = \begin{bmatrix} \begin{matrix} {\hat{x}}_{7} & {\hat{y}}_{7} & {\hat{z}}_{7} \end{matrix} & \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix} \\ 0 & 1 \end{bmatrix}} & (50) \end{matrix}$

and further:

_(e) ⁰ T= ₆ ⁰ T _(e) ⁶ T  (51)

and ₆ ⁰T can be expressed as:

₆ ⁰ T= _(e) ⁰ T[_(e) ⁶ T]⁻¹  (52)

Where _(e) ⁶T is the End Effector Frame in the TCP frame and is expressed as:

$\begin{matrix} {{\,_{e}^{6}T} = \begin{bmatrix} I & \begin{bmatrix} a_{7} \\ 0 \\ 0 \end{bmatrix} \\ 0 & 1 \end{bmatrix}} & (53) \end{matrix}$

By substituting the above equations into Equation 31:

$\begin{matrix} {{\,_{0}^{6}T} = {{\begin{bmatrix} \begin{matrix} {\hat{x}}_{7^{\prime}} & {\hat{y}}_{7^{\prime}} & {\hat{z}}_{7^{\prime}} \end{matrix} & \begin{bmatrix} {u_{0} + a_{7}} \\ v^{''} \\ w^{''} \end{bmatrix} \\ 0 & 1 \end{bmatrix}\begin{bmatrix} \begin{matrix} {\hat{x}}_{7} & {\hat{y}}_{7} & {\hat{z}}_{7} \end{matrix} & \begin{bmatrix} {u^{\prime} + a_{7}} \\ v^{\prime} \\ w^{\prime} \end{bmatrix} \\ 0 & 1 \end{bmatrix}}^{- 1}\left\lbrack {{\,_{e}^{0}T}\begin{bmatrix} I & \begin{bmatrix} a_{7} \\ 0 \\ 0 \end{bmatrix} \\ 0 & 1 \end{bmatrix}}^{- 1} \right\rbrack}^{- 1}} & (54) \end{matrix}$

Finally, by applying the relative motion between the TCP frame and the Base Frame, the Rotated TCP Frame can be expressed in the Base Frame as:

_(6′) ⁰ T=[₆ ⁰ T]⁻¹  (55)

With reference to FIG. 22, an extreme condition for the long-jaw instrument is shown such that the distance between the trocar point :O: and the pitch point “P” is:

(r″ cos (π−θ_(5,extreme))−a ₆ −a ₇)²+(r″ sin (π−θ_(5,max)))² =r ₀ ²  (56)

Solving r″ from Equation 56 provides:

u _(extreme) =r″ cos(π−θ_(5,extreme))−a ₆ −a ₇  (58)

Thus, the steps of the complete inverse kinematics algorithm for a long-jaw instrument are as follows:

-   -   1) For each given input pose ₆ ⁰T, calculate the trocar point         “O” position in the End Effector Frame using Equation 42;     -   2) Use Equation 40 to check if the input pose needs correction,         if correction is needed got to step 3, otherwise calculate _(6′)         ⁰T from Equation 52 and go to step 5;     -   3) Check if u′>u_(extreme) with Equation 57, if true provide         feedback, else got to Step 4;     -   4) Use Equations 49-55 to calculate a corrected pose _(6′) ⁰T,         and replace the original pose _(6′) ⁰T with the corrected pose         _(6′) ⁰T;     -   5) Reapply Equations 3-18 to calculate the joint angles θ₁, θ₂,         θ₃, θ₅, and θ₆ as well as the distance d₄.

It is also within the scope of this disclosure to provide a clinician with an indication or an alert when the arm 12 and the tool 20 are approaching a singularity or may experience reduced DOF. Thus, while checking whether u′>u_(extreme), if the angle approaches the extreme angle θ_(extreme) (e.g., π/6 or 30°), then the {circumflex over (x)}₆ axis may be pointing back to the trocar point “O” such that the motion of the {circumflex over (x)}₆ axis will be significantly amplified. In such a condition, the inverse kinematic solution may become less stable and the algorithm may provide a warning to the user such that mapping between the input handle 43 (FIG. 1) and the tool 20 (FIG. 1) may be decoupled until the pose is corrected in Step 4 of the algorithm detailed above.

Referring briefly back to FIG. 12, when the input pose _(6′) ⁰T positions the trocar point “O” on the left side of the boundary line “B” the tool 20 would be functioning in an undesired configuration (e.g., with a possible decrease in DOF or the desired pose of the tool 20 may not be reachable in light of the current pose of the arm 12 or the desired pose of the tool 20 may be close to a singularity). In response to such an input pose, it may be desirable to correct the pose of the arm 12 using the projection method, as detailed above.

During a medical procedure, when a correction of the pose of the arm 12 is desirable, the user interface 40 (FIG. 1) may provide feedback to a clinician interfacing with the input handles 42. The feedback may be visual, audible, or haptic. One form of haptic feedback is force feedback that may inform the clinician of the current status of the configuration of the arm 12 and the tool 20. The force feedback would provide a tactile force through the input handle 42 as the boundary line “B” is approached and/or crossed. For example, the tactile force may have a first feedback force as the boundary line B is approached and a second stronger feedback force as the boundary line “B” is crossed. The feedback forces can be generated by a feedback torque of a force feedback system (not explicitly shown). With reference to FIG. 15, the feedback torque can be expressed in the Base Frame as:

{circumflex over (τ)}=f(ϕ){right arrow over (T)}M×{right arrow over (T)}O/|{right arrow over (T)}M×{right arrow over (T)}O|  (59)

In Equation 42, f(ϕ) is a scalar function that determines the magnitude of the feedback torque {circumflex over (t)} and the cross product of {right arrow over (T)}M and {right arrow over (T)}O determines the direction of the feedback torque {circumflex over (t)}. The f(ϕ) may be a linear function or may be an exponential function that is limited by a maximum torque. The maximum torque may be set by torque that is realizable by the force feedback system and/or may be set by torque that is physiologically meaningful to a clinician interfacing with the input handles 42. It will be appreciated that in Equation 42 the feedback torque {circumflex over (t)} is expressed in the Base Frame and that when displayed or applied by the input handles 42 of the user interface 40, the feedback torque {circumflex over (t)} would be expressed in the proper frame of the user interface 40.

While several embodiments of the disclosure have been shown in the drawings, it is not intended that the disclosure be limited thereto, as it is intended that the disclosure be as broad in scope as the art will allow and that the specification be read likewise. Any combination of the above embodiments is also envisioned and is within the scope of the appended claims. Therefore, the above description should not be construed as limiting, but merely as exemplifications of particular embodiments. Those skilled in the art will envision other modifications within the scope of the claims appended hereto. 

1-18. (canceled)
 19. A robotic surgical system comprising: a user interface including an input handle movable to output an input pose having an input angle; a robotic arm including a surgical instrument; and a processing unit configured to: receive the input pose; calculate an inverse kinematic solution for the surgical instrument based on the input pose; determine whether the inverse kinematic solution is desirable based on at least one of joint limit, speed limit, or an acceleration limit of the surgical instrument; correct the input pose based on the inverse kinematic solution being undesirable; recalculate the inverse kinematic solution for the surgical instrument based on the corrected input pose; and command the robotic arm to move the surgical instrument based on the recalculated inverse kinematic solution.
 20. The robotic surgical system according to claim 19, wherein the surgical instrument includes: a shaft; a link coupled to the shaft and pivotal relative to the shaft at a pitch angle about a pitch point; and a tool coupled to the link and pivotal relative to the link at a yaw angle about a yaw axis having a tool center point.
 21. The robotic surgical system according to claim 20, further comprising a trocar configured to be inserted into a patient at a trocar point to allow passage of the surgical instrument therethrough.
 22. The robotic surgical system according to claim 21, wherein the input angle exceeds at least one of the pitch angle or the yaw angle.
 23. The robotic surgical system according to claim 21, wherein the trocar point and the pitch point define a pitch plane.
 24. The robotic surgical system according to claim 23, wherein the pitch point and the tool center point define a yaw plane.
 25. The robotic surgical system according to claim 24, wherein the processing unit is further configured to define the yaw angle and to calculate the inverse kinematic solution based on the yaw angle.
 26. The robotic surgical system according to claim 24, wherein the processing unit is further configured to determine whether the pitch plane is uniquely defined and intersects the yaw plane.
 27. The robotic surgical system according to claim 26, wherein the processing unit is further configured to calculate the inverse kinematic solutions based on the determination whether the pitch plane is uniquely defined and intersects the yaw plane.
 28. The robotic surgical system according to claim 21, wherein in determining whether the inverse kinematic solution is desirable, the processing unit is further configured to: calculate a spherical surface representing a travel path of the trocar point relative to the tool center point; define a boundary plane separating the spherical surface; and determine whether the inverse kinematic solution is desirable based on a position of the trocar point relative to the boundary.
 29. The robotic surgical system according to claim 28, wherein in correcting of the input pose, the processing unit is further configured to: project the trocar point onto the boundary plane to generate a projected point; and rotate the input pose to the projected point to generate the corrected input pose.
 30. A method for controlling a robotic surgical system, the method comprising: receiving an input pose at a processing unit from a user interface including an input handle movable to output the input pose; calculating an inverse kinematic solution for a surgical instrument coupled to and movable by a robotic arm based on the input pose; determining whether the inverse kinematic solution is desirable based on at least one of joint limit, speed limit, or an acceleration limit of the surgical instrument; correcting the input pose based on the inverse kinematic solution being undesirable; recalculating the inverse kinematic solution for the surgical instrument based on the corrected input pose; and commanding the robotic arm to move the surgical instrument based on the recalculated inverse kinematic solution.
 31. The method according to claim 30, wherein calculating the inverse kinematic solution for the surgical instrument is based on a model of the surgical instrument including: a shaft; a link coupled to the shaft and pivotal relative to the shaft at a pitch angle about a pitch point; and a tool coupled to the link and pivotal relative to the link at a yaw angle about a yaw axis having a tool center point.
 32. The method according to claim 30, wherein the surgical instrument is movable by a robotic arm based on the input pose while the instrument is inserted into a trocar that is inserted into a patient at a trocar point to allow passage of the surgical instrument therethrough.
 33. The method according to claim 32, wherein determining whether the kinematic solution is desirable, further includes: calculating a spherical surface representing a travel path of the trocar point relative to the tool center point; defining a boundary plane separating the spherical surface; and determining whether the inverse kinematic solution is desirable based on a position of the trocar point relative to the boundary.
 34. The method according to claim 33, wherein correcting the input pose, further includes: projecting the trocar point onto the boundary plane to generate a projected point; and rotating the input pose to the projected point to generate the corrected input pose.
 35. A method for controlling a robotic surgical system, the method comprising: receiving an input pose at a processing unit from a user interface including an input handle movable to output the input pose; calculating an inverse kinematic solution for a surgical instrument coupled to and movable by a robotic arm based on the input pose; determining whether the inverse kinematic solution is desirable based on at least one of joint limit, speed limit, or an acceleration limit of the surgical instrument; and commanding the robotic arm to move the surgical instrument based on the inverse kinematic solution.
 36. The method according to claim 35, further comprising: correcting the input pose based on the inverse kinematic solution being undesirable; recalculating the inverse kinematic solution for the surgical instrument based on the corrected input pose; and commanding the robotic arm to move the surgical instrument based on the recalculated inverse kinematic solution.
 37. The method according to claim 35, wherein the surgical instrument is movable by a robotic arm based on the input pose while the instrument is inserted into a trocar that is inserted into a patient at a trocar point to allow passage of the surgical instrument therethrough.
 38. The method according to claim 37, wherein determining whether the kinematic solution is desirable, further includes: calculating a spherical surface representing a travel path of the trocar point relative to the tool center point; defining a boundary plane separating the spherical surface; and determining whether the inverse kinematic solution is desirable based on a position of the trocar point relative to the boundary. 